Optimize OpenID configuration fetching with LRU cache #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Optimize OpenID configuration fetching with LRU cache
Summary
This PR optimizes the
get_discovery_docfunction to reduce latency and redundant network requests when creating multipleAuthClientinstances. The changes include:@lru_cache()decorator to cache discovery document responses per environmentsessionparameter dependency fromget_discovery_docrequests.get()directly since authentication is not needed for OpenID configuration endpointsAuthClient.__init__to remove the session parameterThis optimization will significantly improve performance for applications that create multiple
AuthClientinstances, as the discovery document will only be fetched once per environment and then served from cache.Review & Testing Checklist for Human
.well-known/openid_configuration/endpoints work correctly without session-specific configurations (cookies, proxies, auth headers)AuthClientinstances and verify they share the cached discovery document correctlyNotes